package com.roin.learn.springsecurity.service;

import com.roin.learn.springsecurity.entity.SysAdmin;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

/**
 * <p>
 * 系统管理员用户表 服务类
 * </p>
 *
 * @author Roin
 * @since 2021-01-07
 */
public interface SysAdminService extends IService<SysAdmin> {

    /**
     * 通过用户名获取管理员信息
     * @param username
     * @return
     */
    SysAdmin getAdminByUsername(String username);

    /**
     * 通过用户名获取鉴权用户信息
     * @param username
     * @return
     * @throws UsernameNotFoundException
     */
    UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;

    /**
     * 管理员登录
     * @param username
     * @param password
     * @return 生成的JWT的token
     */
    String login(String username, String password);

    /**
     * 用旧token获取新token
     * @param oldToken
     * @return 新token
     */
    String refreshToken(String oldToken);
}
